x86/PVH/libxl: Check whether Linux guest can handle RSDP at 4G boundary
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Mon, 9 Apr 2018 14:24:59 +0000 (10:24 -0400)
committerWei Liu <wei.liu2@citrix.com>
Mon, 9 Apr 2018 17:18:00 +0000 (18:18 +0100)
commitaaae6290965b1434ae41e08b808bf5a59e6cf93e
tree671aae3da127cf46697168fc8c20a1e0b4f8cb33
parentdba899de14989b3dff78009404ed891da7fefdc1
x86/PVH/libxl: Check whether Linux guest can handle RSDP at 4G boundary

Commit 4a5733771e6f ("libxl: put RSDP for PVH guest near 4GB") breaks
pre-4.17 Linux guests since they do not use start_info's rsdp_paddr
pointer and instread scan BIOS memory for RSDP signature.

Introduce XENFEAT_linux_rsdp_unrestricted feature flag that indicates
whether the guest can handle RSDP at locations pointed to by
rsdp_paddr.

Since only Linux PVH guests suffer from this problem (BSD has always
relied on rsdp_paddr) we check this flag just for those guests. If the
flag is not set we place RSDP in BIOS, as before.

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Release-acked-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: George Dunlap <george.dunlap@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
tools/libxl/libxl_x86_acpi.c
xen/include/public/features.h